package InnerClass;
//局部内部类
public class LocalInnerClass {
    public static void main(String[] args) {
        Outer01 outer01 = new Outer01();
        outer01.m1();
    }
}

class Outer01{//外部类
    private int n1 = 10;
    private void m2(){
        System.out.println("m2()方法被调用..");
    }
    public void m1(){
        //2.内部类不能添加访问修饰符，但可以用final修饰
        //3.内部类的作用域:仅仅在定义他的方法或者代码块中
       final class Inner01{//内部类
           private int n1 = 20;
            public void f1(){
                //1.内部类可以直接访问外部类的所有成员，包括私有
                //5.如果外部类和局部内部类的成员重名时，默认遵守就近原则，如果想访问外部类成员，
                // 使用外部类名.this.成员 去访问
                System.out.println("内部类的n1=" + n1);
                //Outer01.this是指，谁调用了当前的方法(m1方法)，Outer01.this就是指谁(Outer01)
                System.out.println("外部类的n1=" + Outer01.this.n1);
                m2();


            }

        }
        //class Inner02 extends Inner01{}

        //4.外部类在方法中，可以创建内部类的对象，然后调用方法即可
        Inner01 inner01 = new Inner01();
       inner01.f1();
    }

}
